#ifndef POINT_LIGHT_H
#define POINT_LIGHT_H

#include "src/scene/light.h"

class Object;

class PointLight : public Light{
	public:
		PointLight();
		PointLight(unsigned int, const Vector3D &, const Color &, double = 1);
		~PointLight();

		const Vector3D &getPosition() const {return position;};
		void setPosition(const Vector3D &_p) {position = _p;};

//        void calculateProjectionMap(HBBTree *);
		void generatePhotonPointDirection(Vector3D *, Vector3D *, Object *) const;

        unsigned int getType() const {return POINT_LIGHT;};
        Color getIntersectionColor(const NearestInfo &, const Vector3D &, HBBTree *, const unsigned int & = CONSTANT_ATTENUATION) const;
        void shine(const GLenum &);
        void draw() const;

    private:
        Vector3D position;
};

#endif

